package com.woniuxy.creditsystem.systemmag.service;


import com.github.pagehelper.PageInfo;
import com.woniuxy.creditsystem.common.bean.*;
import com.woniuxy.creditsystem.common.bean.ResultMsg;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 角色的增、删、查、改
 * @author hejie
 */
public interface IRoleService {

    /**
     * 新增管理员
     * @author hejie
     * @param roleInfo
     * @return 受影响的行数
     */
    int saveRoleInfo(RoleInfo roleInfo);

    /**
     * 修改角色
     * @author hejie
     * @param RoleInfo
     * @return 受影响的行数
     */
    int updateRoleInfo(RoleInfo RoleInfo);

    /**
     * 查询所有的角色
     * @author hejie
     * @return List<RoleInfo>
     */
    List<RoleInfo> findAll();

    /**
     * 根据参数进行分页查询
     * @author hejie
     * @param pageNum
     * @param pageSize
     * @param RoleInfo 条件
     * @return
     */
    PageInfo<RoleInfo> findAllByParams(int pageNum,int pageSize, RoleInfo RoleInfo);

    /**
     * 删除角色
     * @author hejie
     * @param id
     * @return 受影响的行数
     */
    int deleteRoleInfo(Long id);

    /**
     * 根据角色id，查询菜单名称和该菜单的操作权限
     * @author hejie
     * @param id
     * @return
     */
    List<Map> findPermissionByRoleId(Long id);

    /**
     * 把页面传回来的table数据，写入到excel文件中
     * @author hejie
     * @param tableDataJson 前端的表格数据
     * @param path excel文件存放的路径（Dir）
     * @param simpleFileNameUserSet 用户设置的excel文件名
     * @return
     */
    ResultMsg write2excel(List<RoleInfo> tableDataJson, String path, String simpleFileNameUserSet) throws IOException;
}
